package structdef

type ThreadStore struct {
	//当前线程id
	ThreadId string
	//全局操作环境
	GlobalEnv string
	//当前线程操作环境
	CurrentEnv string
	//当前线程操作环境的父环境
	ParentEnv string
	//当前操作指针
	CurrentPoint int
	//当前操作的文件路径
	HandleFilePath string
	//跳出循环标识,break
	BreakFlag bool
	//跳出循环标识,continue
	ContinueFlag bool
	//跳出循环标识,to
	ReturnFlag bool
	//线程结束标识
	ThreadStopFlag bool

	//线程通讯chan
	ThreadChan chan string

	// 当前处理的实例地址
	CurrentInstanceAddress string
	// 当前处理的父级实例地址
	ParentInstanceAddress string
	//变量存储(字符串和数字),当前作用域->变量名->变量定义
	VariableStoreMap map[string]map[string]VarDefinition
	// 主线程类型实例变量存储记录  key 就是实例唯一Id,value就是实例属性值
	InstanceStore map[string]map[string]VarDefinition
	// 自定义类型实例存储可以使用instance_store.go,但是如果是默认类型会涉及到底层语言的类型转换,所以需要单独存储
	// key:类型名称,value:{key:实例id,value:数据}
	TypeDefaultInstanceStore map[string]map[string]TypeDefault
	// key是实例id,value是类型名称,用于反向查找实例是什么类型和是否存在
	TypeDefaultInstanceInversionStore map[string]string
	//代码执行记录
	ExecuteCodeRecordLogMap []RecordLog
	//当前线程,所在环境中可执行的代码集
	Codes []LineCodeDefinition
	//当前线程执行代码集中哪行代码
	Code LineCodeDefinition
	//超时代码记录，key是有问题的代码类型,   value是代码和执行时间（毫秒数）
	MapCodeTime map[string]map[LineCodeDefinition]int

	ErrorMsg string //错误信息

}
